<!DOCTYPE html>
<html>
<body>
<template id="target-template">
<svg width="0" height="0">
<polygon class="target" />
</svg>
</template>
<script src="../svg-attribute-interpolation/resources/interpolation-test.js"></script>
<script>
'use strict';
assertAttributeInterpolation({
  property: 'points',
  underlying: '10 10, 20 20',
  from: '40 40, 30 30',
  fromComposite: 'add',
  to: '90 90, -10 -10',
  toComposite: 'add',
}, [
  {at: -0.4, is: '30 30, 66 66'},
  {at: 0, is: '50 50, 50 50'},
  {at: 0.2, is: '60 60, 42 42'},
  {at: 0.6, is: '80 80, 26 26'},
  {at: 1, is: '100 100, 10 10'},
  {at: 1.4, is: '120 120, -6 -6'},
]);

assertAttributeInterpolation({
  property: 'points',
  underlying: '10 10, 20 20',
  from: '40 40, 30 30',
  fromComposite: 'add',
  to: '90 90, -10 -10, 50 50',
  toComposite: 'add',
}, [
  {at: -0.4, is: '50 50, 50 50'},
  {at: 0, is: '50 50, 50 50'},
  {at: 0.2, is: '50 50, 50 50'},
  {at: 0.6, is: '90 90, -10 -10, 50 50'},
  {at: 1, is: '90 90, -10 -10, 50 50'},
  {at: 1.4, is: '90 90, -10 -10, 50 50'},
]);

assertAttributeInterpolation({
  property: 'points',
  underlying: '10 10, 20 20, 50 50',
  from: '40 40',
  fromComposite: 'add',
  to: '90 90, -10 -10',
  toComposite: 'add',
}, [
  {at: -0.4, is: '40 40'},
  {at: 0, is: '40 40'},
  {at: 0.2, is: '40 40'},
  {at: 0.6, is: '90 90, -10 -10'},
  {at: 1, is: '90 90, -10 -10'},
  {at: 1.4, is: '90 90, -10 -10'},
]);

assertAttributeInterpolation({
  property: 'points',
  underlying: '10 10, 20 20',
  from: '40 40, 30 30',
  fromComposite: 'add',
  to: '90 90, -10 -10',
  toComposite: 'replace',
}, [
  {at: -0.4, is: '34 34, 74 74'},
  {at: 0, is: '50 50, 50 50'},
  {at: 0.2, is: '58 58, 38 38'},
  {at: 0.6, is: '74 74, 14 14'},
  {at: 1, is: '90 90, -10 -10'},
  {at: 1.4, is: '106 106, -34 -34'},
]);

assertAttributeInterpolation({
  property: 'points',
  underlying: '10 10, 20 20',
  from: '40 40, 30 30',
  fromComposite: 'add',
  to: '90 90, -10 -10, 50 50',
  toComposite: 'replace',
}, [
  {at: -0.4, is: '50 50, 50 50'},
  {at: 0, is: '50 50, 50 50'},
  {at: 0.2, is: '50 50, 50 50'},
  {at: 0.6, is: '90 90, -10 -10, 50 50'},
  {at: 1, is: '90 90, -10 -10, 50 50'},
  {at: 1.4, is: '90 90, -10 -10, 50 50'},
]);

assertAttributeInterpolation({
  property: 'points',
  underlying: '10 10, 20 20, 50 50',
  from: '40 40',
  fromComposite: 'add',
  to: '90 90, -10 -10',
  toComposite: 'replace',
}, [
  {at: -0.4, is: '40 40'},
  {at: 0, is: '40 40'},
  {at: 0.2, is: '40 40'},
  {at: 0.6, is: '90 90, -10 -10'},
  {at: 1, is: '90 90, -10 -10'},
  {at: 1.4, is: '90 90, -10 -10'},
]);

assertAttributeInterpolation({
  property: 'points',
  underlying: '10 10, 20 20',
  from: neutralKeyframe,
  to: '90 90, -10 -10',
  toComposite: 'replace',
}, [
  {at: -0.4, is: '-22 -22, 32 32'},
  {at: 0, is: '10 10, 20 20'},
  {at: 0.2, is: '26 26, 14 14'},
  {at: 0.6, is: '58 58, 2 2'},
  {at: 1, is: '90 90, -10 -10'},
  {at: 1.4, is: '122 122, -22 -22'},
]);

assertAttributeInterpolation({
  property: 'points',
  underlying: '10 10, 20 20',
  from: neutralKeyframe,
  to: '90 90, -10 -10, 50 50',
  toComposite: 'replace',
}, [
  {at: -0.4, is: '10 10, 20 20'},
  {at: 0, is: '10 10, 20 20'},
  {at: 0.2, is: '10 10, 20 20'},
  {at: 0.6, is: '90 90, -10 -10, 50 50'},
  {at: 1, is: '90 90, -10 -10, 50 50'},
  {at: 1.4, is: '90 90, -10 -10, 50 50'},
]);
</script>
</body>
</html>
